package com.apimanage.monitor.mapper;

import com.apimanage.monitor.entity.ApiStatistics;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Mapper
public interface ApiStatisticsMapper extends BaseMapper<ApiStatistics> {

    /**
     * 分页查询API调用统计
     * @param params 查询参数
     * @return API调用统计列表
     */
    List<ApiStatistics> selectStatisticsPage(Map<String, Object> params);

    /**
     * 根据API ID和日期查询统计
     * @param apiId API ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return API调用统计列表
     */
    List<ApiStatistics> selectByApiIdAndDateRange(@Param("apiId") Long apiId,
                                                @Param("startDate") String startDate,
                                                @Param("endDate") String endDate);

    /**
     * 获取今日统计数据
     * @param apiId API ID
     * @param today 今日日期（YYYY-MM-DD）
     * @return API调用统计
     */
    ApiStatistics selectTodayStatistics(@Param("apiId") Long apiId,
                                      @Param("today") String today);

}